/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Aplicación;

import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import java.util.*;
import Aplicación.Server;

/**
 *
 * @author Kleyvert
 */
public class ImplementadorRMI extends UnicastRemoteObject
	implements InterfaceRMI {
    private static Server coordinador = new Server();
    private static InterfaceRMI _ObjetoInterface;

     public ImplementadorRMI() throws RemoteException {
            super();
     }

     public int BuscarNodoVecino(int idNodoActual) throws RemoteException{
         int puertoNodo = 0;

         for (int i = 0; i < coordinador.getAl().size();i++){
             if (idNodoActual == coordinador.getAl().get(i).getId1()){
                 puertoNodo = coordinador.getAl().get(i-1).getId1();
             }
         }
         return puertoNodo;
     }
     public ArrayList<Server.ClientThread> BuscarListaNodosVecinos(int idNodoActual) throws RemoteException{
         // retornamos la lista de cliente contenida en la clase coordinador
         return coordinador.getAl();
     }

     // Consultamos el puertoID del ultimo cliente conectado al ANILLO
     public int ConsultarUltimoIDPuerto() throws RemoteException{
         int ultimoValor = 0;

         for (int i = 0; i < coordinador.getAl().size();i++){
             if (i == coordinador.getAl().size()-1){
                 ultimoValor = coordinador.getAl().get(i).getId1();
             }
         }

         return ultimoValor;
     }



  // implementacion del metodo para gestionar los archivos enviados por los clientes
  

    // Buscamos el coordinador y retornamos el nombre de dicho coordinador
     public String BuscarCoordinadorActual() throws RemoteException{
         /*String nombreCoordinador = "";
         // recorremos la lista del anillo
         for (int i = 0; i < coordinador.getAl().size(); i++){
             // verificamos que atributo del tipo coordinador sea distinto a null
             if (coordinador.getAl().get(i).getCoordinador() != null){
                 nombreCoordinador = coordinador.getAl().get(i).getUsername();
             }
         }*/
         return null;
     }
     
    
}
